1
Di Luar Larik Linier: Skala ke Data Multidimensi
AI032Lesson 4
00:00

Selamat datang di Perpindahan Besar. Dalam pemrograman CPU, kita menentukan bagaimana untuk melakukan iterasi; dalam GPGPU, kita menentukan apa iterasi terlihat seperti apa. Perubahan dari logika berbasis instruksi menjadi logika berbasis data didukung oleh Abstraksi Kernel.

1. Rancangan __global__

Dengan menggunakan __global__ kualifikasi, Anda tidak sedang menulis fungsi—Anda sedang merancang rancangan yang dapat diskalakan. Eksekusi kernel tunggal mewakili satu unit kerja mandiri, memungkinkan GPU mengatur ribuan tugas identik melintasi jumlah inti yang sangat besar tanpa manajemen thread secara manual.

2. Resolver Alamat Global

Bagaimana satu thread di antara jutaan menemukan targetnya? Ia menggunakan kontrak pasti yang dikenal sebagai rumus pengindeksan:

$$\text{IDThread} = \text{blockIdx.x} \times \text{blockDim.x} + \text{threadIdx.x}$$

Rumus ini bertindak sebagai sistem koordinat, menghubungkan data logis perangkat lunak (larik) dengan hierarki fisik perangkat keras (blok dan thread).

Larik Memori Global (10 Juta Elemen)Blok 0Blok 1Blok N-1indeks = 1 * blockDim + threadIdx

3. Konfigurasi Eksekusi

Parameter <<<B, T>>> menentukan bentuk kisi. Ini menjamin Skalabilitas Transparan: kode Anda menjalankan logika yang sama, baik perangkat keras memiliki 2 SM atau 80 SM.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>